package findShortestSubArray;

import java.util.*;

public class Solution {
    public int findShortestSubArray(int[] nums) {
        // 暴力
        int maxDeg = 0;
        Map<Integer,Integer> degs = new HashMap<>();
        Map<Integer,Integer> minIndex = new HashMap<>();
        Map<Integer, Integer> maxIndex = new HashMap<>();
        // 找到度
        for (int i = 0; i < nums.length; i++) {
            int deg = degs.getOrDefault(nums[i],0)+1;
            degs.put(nums[i],deg);
            if(!minIndex.containsKey(nums[i])){
                minIndex.put(nums[i],i);
            }
            maxDeg = Math.max(deg,maxDeg);
            maxIndex.put(nums[i],i);
        }
        int ans = nums.length;
        for (int i = 0; i < nums.length; i++) {
            if(degs.get(nums[i])==maxDeg){
                ans = Math.min(maxIndex.get(nums[i])-minIndex.get(nums[i])+1,ans);
            }
        }
        return ans;
    }// 最短的连续子数组
}
